package main

import "fmt"

func main() {
	// username := "小皮皮"
	// username = "小阿皮"
	// fmt.Println(username)

	// const pi = 3.1415926
	// fmt.Println(pi)

	// const (
	// 	A = "A"
	// 	B = "B"
	// )
	// fmt.Println(A, B)

	// const 同时声明多个常量时，如果省略了值则表示和上面一行的值相同
	// const (
	// 	C = 100
	// 	D
	// 	E = 200
	// 	F
	// )
	// fmt.Println(C, D, E, F)

	/*
		iota 是 Go 语言中的一个特殊常量，它是一个计数器，可以用来表示枚举值。
		每当 iota 在 const 关键字出现时，它的值都会自动加 1。
		iota 可以被用在 const 关键字声明的常量组中，用来生成一组相关的常量。
		iota 的初始值为 0，每遇到一个 const 关键字，iota 都会被重置为 0。
		iota 可以被用在表达式中，它会在每个 const 关键字出现时自动加 1。
	*/
	// const a = iota
	// fmt.Println(a)

	// const (
	// 	n1 = iota
	// 	n2
	// 	n3
	// 	n4
	// )
	// fmt.Println(n1, n2, n3, n4) // 0 1 2 3

	// const (
	// 	n1 = iota
	// 	_
	// 	n3
	// 	n4
	// )
	// fmt.Println(n1, n3, n4) // 0 2 3

	// const (
	// 	n1 = iota
	// 	n2 = 100
	// 	n3 = iota
	// 	n4
	// )
	// fmt.Println(n1, n2, n3, n4) // 0 100 2 3

	// 多个iota定义在一行中
	// const (
	// 	n1, n2 = iota + 1, iota + 2
	// 	n3, n4
	// 	n5, n6
	// )
	// // fmt.Println(n1, n2, n3, n4, n5, n6) // 1 2 2 3 3 4
	// fmt.Println(n1, n2) // 1 2 此时iota是0，所以n1=0+1,n2=0+2
	// fmt.Println(n3, n4) // 2 3 此时iota是1，所以n3=1+1,n4=1+2
	// fmt.Println(n5, n6) // 3 4 此时iota是2，所以n5=2+1,n6=2+2

	// 定义变量
	// n1, n2 := 20, 30
	// fmt.Println(n1, n2)

	// 变量是区分大小写的
	// age := 20
	// Age := 30
	// fmt.Println(age, Age) // 20 30

	// 变量命名要见名思意，不要使用拼音、缩写、数字等无意义的字母
	// 变量名一般使用驼峰命名法，即首字母小写，后续单词首字母大写
	var userName = "小皮皮"
	var userAge = 1.5
	fmt.Println(userName, userAge)
}
